package com.zbs.framework.dao.role.service;


import com.zbs.framework.common.utils.PageData;
import com.zbs.framework.dao.role.entity.Role;
import com.zbs.framework.dao.role.model.RoleListItem;

import java.util.List;

public interface RoleService {

    /**
     * 新增角色
     * @param name
     * @param enabled
     * @param description
     * @return
     */
    Role add(String name, Integer enabled, String description,String type);


    /**
     * 新增角色
     * @param name
     * @param enabled
     * @param description
     * @return
     */
    Role add(String name, Integer enabled, String description,String type ,List<Long> functionIds);


    /**
     * 编辑角色
     * @param id
     * @param name
     * @param enabled
     * @param description
     */
    void edit(Integer id, String name, Integer enabled, String description,String type);

    /**
     * 删除角色
     * @param id
     */
    void delete(Integer id);

    /**
     * 删除角色判断是否有用户
     * @param roleId
     */
    void deleteRoleExistsUser(Integer roleId);

    /**
     * 查询角色列表
     * @param quickSeek
     * @param enabled
     * @return
     */
    List<RoleListItem> findList(String quickSeek, Integer enabled,String type);


    /**
     * 角色列表分页
     * @param pageIndex
     * @param pageSize
     * @param quickSeek
     * @param enabled
     * @param type
     * @return
     */
    PageData<RoleListItem> findList(Integer pageIndex, Integer pageSize, String quickSeek, Integer enabled, String type);
}
